package com.alex.zjg;

/**
 * @ClassName xuanze
 * @Description TODO
 * @Author zjg
 * @Date 2021/4/1623:05
 * @Version 2.0
 */
// 什么是选择排序？  时间复杂度 O(N*N)
//第一次从待排序的数组中找出最小的，存到起始位  将i位置的数据每次循环比较找最小值

import com.alex.zjg.util.AlgorithmUtil;
import java.util.Arrays;

/** 如：  3,2,6,4,9,1
 *   0  ---->  1,3,6,4,9,2
 *   1  ---->  1,2,6,4,9,3
 *   2  ---->  1,2,3,6,9,4
 *   3  ---->  1,2,3,4,9,6
 *   4  ---->  1,2,3,4,6,9
 * */
public class xuanze {

  public static void main(String[] args) {

    int[] sorted = sorted(new int[]{3, 2, 6, 4, 9, 1});
    System.out.println(Arrays.toString(sorted));
  }

  public static int[] sorted(int arr[]){
    if(arr==null || arr.length<2){
      return arr;
    }
    for (int i=0;i<arr.length;i++){
      int minIndex =i;
      for(int j=i+1;j<arr.length;j++){
        minIndex=arr[minIndex]>arr[j]?j:minIndex;
      }
      AlgorithmUtil.swap(arr,i,minIndex);  // 每次循环完成以后交换位置  如果有最小的则交换位置,没有就自己和自己换
    }

    return arr;
  }


}
